train_two_level_som Subroutine

public subroutine train_two_level_som(parameter_file)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: parameter_file

Calls

proc~~train_two_level_som~~CallsGraph proc~train_two_level_som train_two_level_som proc~calculate_sum2_clusters_grid two_level_self_organizing_map%calculate_sum2_clusters_grid proc~train_two_level_som->proc~calculate_sum2_clusters_grid proc~create_2lsom two_level_self_organizing_map%create_2lsom proc~train_two_level_som->proc~create_2lsom proc~destroy_2lsom two_level_self_organizing_map%destroy_2lsom proc~train_two_level_som->proc~destroy_2lsom proc~kohonen_pattern_create kohonen_pattern%kohonen_pattern_create proc~train_two_level_som->proc~kohonen_pattern_create proc~kohonen_pattern_destroy kohonen_pattern%kohonen_pattern_destroy proc~train_two_level_som->proc~kohonen_pattern_destroy proc~train_2lsom two_level_self_organizing_map%train_2lsom proc~train_two_level_som->proc~train_2lsom none~get_prototype kohonen_prototype%get_prototype proc~calculate_sum2_clusters_grid->none~get_prototype none~create_distance factory_distance%create_distance proc~create_2lsom->none~create_distance none~create~3 rkiss05_generator%create proc~create_2lsom->none~create~3 proc~calculate_distance_matrix~2 two_level_self_organizing_map%calculate_distance_matrix proc~create_2lsom->proc~calculate_distance_matrix~2 proc~create_random_sample~2 two_level_self_organizing_map%create_random_sample proc~create_2lsom->proc~create_random_sample~2 proc~position2index~2 position2index proc~create_2lsom->proc~position2index~2 none~destroy~9 kohonen_prototype%destroy proc~destroy_2lsom->none~destroy~9 none~create~11 kohonen_prototype%create proc~kohonen_pattern_create->none~create~11 proc~kohonen_pattern_destroy->none~destroy~9 proc~assign_input_to_clusters two_level_self_organizing_map%assign_input_to_clusters proc~train_2lsom->proc~assign_input_to_clusters proc~train_cluster_layer two_level_self_organizing_map%train_cluster_layer proc~train_2lsom->proc~train_cluster_layer proc~train_grid_layer two_level_self_organizing_map%train_grid_layer proc~train_2lsom->proc~train_grid_layer error_stop error_stop none~create_distance->error_stop none~distance~8 kohonen_prototype%distance proc~assign_input_to_clusters->none~distance~8 proc~kohonen_pattern_accessor kohonen_pattern%kohonen_pattern_accessor proc~assign_input_to_clusters->proc~kohonen_pattern_accessor none~generate rkiss05_generator%generate proc~create_random_sample~2->none~generate proc~train_cluster_layer->none~get_prototype float float proc~train_cluster_layer->float proc~train_cluster_layer->none~distance~8 none~set_prototype kohonen_prototype%set_prototype proc~train_cluster_layer->none~set_prototype proc~train_grid_layer->none~get_prototype proc~train_grid_layer->proc~position2index~2 proc~train_grid_layer->float proc~train_grid_layer->none~distance~8 proc~train_grid_layer->none~set_prototype proc~calculate_distance_between_prototypes~2 two_level_self_organizing_map%calculate_distance_between_prototypes proc~train_grid_layer->proc~calculate_distance_between_prototypes~2 proc~calculate_u_matrix~2 two_level_self_organizing_map%calculate_u_matrix proc~train_grid_layer->proc~calculate_u_matrix~2 proc~index2position~2 index2position proc~train_grid_layer->proc~index2position~2 proc~train_grid_layer->proc~kohonen_pattern_accessor none~distance~8->none~get_prototype calculate calculate none~distance~8->calculate proc~calculate_distance_between_prototypes~2->proc~position2index~2 proc~calculate_u_matrix~2->none~distance~8

Source Code

    subroutine train_two_level_som(parameter_file)
    !==============================================================================
        character(len=*),intent(inout) :: parameter_file
        !
        call initialize_variables(parameter_file);
        !
        call my_som%create(som_parameters);
        !
        call my_som%train(input_patterns);
        !
        if(som_parameters(1)%train_option == 0) then
            call my_som%calculate_sum2_clusters_grid();
        endif
        !
        call my_som%destroy();
        !
        call release_variables();
        
    end subroutine train_two_level_som